using System;
using System.Collections.Generic;
using System.Text;

namespace Decav.Transactions
{
    /// <summary>
    /// Interfaces an object that finds the target of a databind for a source property.
    /// </summary>
    public interface IBindingTargetSelector
    {
        /// <summary>
        /// Finds the target for the source of a databind.
        /// </summary>
        /// <param name="targetObject">The object that is being targeted for the bind
        /// that the value will be set on.</param>
        /// <param name="source">The source member that will be bound from.</param>
        /// <returns>The target member to bind to, or null if no bind occurs for this
        /// source.</returns>
        BindingTarget FindTarget(object targetObject, BindingTarget source);
    }
}
